//package pl.com.like.sequoia.web.views.panels;
//
//import java.util.HashMap;
//import java.util.Map;
//
//import org.apache.wicket.PageParameters;
//import org.apache.wicket.behavior.HeaderContributor;
//import org.apache.wicket.markup.html.basic.Label;
//import org.apache.wicket.markup.html.panel.Panel;
//import org.apache.wicket.model.AbstractReadOnlyModel;
//import org.apache.wicket.model.IModel;
//import org.apache.wicket.model.Model;
//import org.apache.wicket.spring.injection.annot.SpringBean;
//import org.apache.wicket.util.template.TextTemplateHeaderContributor;
//import org.springframework.util.Assert;
//
//import pl.com.like.sequoia.exceptions.LogicalException;
//import pl.com.like.sequoia.web.search.SearchHandlerPage;
//import pl.com.like.sequoia.web.search.SearchObjectParametersEnum;
//import pl.com.like.sequoia.web.service.IPdbInformator;
//import pl.com.like.sequoia.web.util.WicketUtils;
//import pl.com.like.sequoia.web.views.GenericViewerPage;
//import pl.com.like.sequoia.web.views.panels.pdb.PdbInfoPanel;
//import pl.com.like.sequoia.web.vo.IPdbObjectDataHandler;
//
///**
// * Panel for rendering PDB result
// * 
// * @author Pawel Wolanski
// * 
// */
//public class PdbViewPanel extends Panel {
//
//	private static final long serialVersionUID = 6169501127646331027L;
//
//	@SpringBean
//	private IPdbInformator pdbInformator;
//
//	public PdbViewPanel(String id, IModel model) {
//		super(id, model);
//		initJmol(model);
//		setPdbInformation(model);
//	}
//
//	/**
//	 * fill all necessary files, sectors using information about object
//	 * 
//	 * @param parameters
//	 */
//	public IModel getJmolVars(final PageParameters parameters) {
//		IModel vars = new AbstractReadOnlyModel() {
//
//			private Map<String, String> map;
//
//			private static final long serialVersionUID = 1975943739209L;
//
//			@Override
//			public Object getObject() {
//				if (map == null) {
//					map = new HashMap<String, String>();
//				}
//				String objPath = getObjectUrl(parameters);
//				String jarPath = WicketUtils.returnRelativePath("jmol/");
//				map.put("jmolPath", jarPath);
//				map.put("objectPath", objPath);
//				return map;
//			}
//
//		};
//		return vars;
//	}
//
//	public String getObjectUrl(final PageParameters parameters) {
//		Assert.notNull(parameters);
//		return urlFor(SearchHandlerPage.class, parameters).toString();
//	}
//
//	public void initJmol(IModel model) {
//		PageParameters parameters = (PageParameters) model.getObject();
//		add(HeaderContributor.forJavaScript(GenericViewerPage.class, "Jmol.js"));
//		add(TextTemplateHeaderContributor
//				.forJavaScript(GenericViewerPage.class, "jmolInit.js", getJmolVars(parameters)));
//		// initialization of jmol script
//		add(new Label("initJmol", "initJmol();"));
//		// init Jmol title + description
//	}
//
//	public void setPdbInformation(IModel model) {
//		PageParameters parameters = (PageParameters) model.getObject();
//		String idObject = (String) parameters.get(SearchObjectParametersEnum.ID.getStrValue());
//		try {
//			IPdbObjectDataHandler pdbHandler = pdbInformator.getObjectInfo(idObject);
//			if (pdbHandler.getParameters() == null) {
//				pdbHandler.setParameters(parameters);
//			}
//			add(new PdbInfoPanel("objDescription", new Model(pdbHandler)));
//		} catch (LogicalException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//	}
//
//	public void setTitle(Object object) {
//		String objectName = (String) object;
//		add(new Label("objectName", objectName));
//	}
//
// }
